Skip to main content

Contributors: Jellejurre, JustSleightly

Avatars 3.0 Overview

Having a general understanding of how 3.0 works will help with learning how to accomplish any animation on your avatar, and leave less holes/mistakes in the workflow. The visual diagram on the right covers VRChat’s SDK functionality relatively cohesively.

  1. The black lines/borders highlight the basic understanding that newer creators should focus on.
  2. The solid gray lines indicate additional functionality Avatars 3.0 has to offer.
  3. The dotted light gray lines display how some components can affect others.

Each node is organized into four separate rows:

  • Trigger - Different mechanisms/inputs that can be used to manipulate variables
  • Variables - Set of named values that hold information
  • Controller - The “brain” that controls the flow of logic based off the values of variables
  • Action - The events that occur determined by the controller

Green nodes are components handled by VRChat, while blue nodes are native to the Unity Editor.

A visual diagram covering VRChat’s Avatars 3.0 animation system

A visual diagram covering VRChat’s Avatars 3.0 animation system

Glossary

Triggers

  • Expressions Menu Controls - The VRChat “Wheel” Menu often used for toggles and radial puppets as described in Expressions Menu and Parameters
  • OSC - A method of using external applications to communicate with your VRChat avatar from outside the game using Open Sound Control
  • Parameter Driver - A kind of VRC State Behaviours that can directly manipulate the value of an Animator Parameter

Variables

Controller

  • Animator Parameters - Low level variables specific to Animator Controllers that may be synced or manipulated by any of the above variables or triggers
  • Animator Layers - Where most of the logic is handled within Animator Controllers

Action

  • Animation Clips - Animation Clips manipulate properties/values on any GameObject/Component
  • State Behaviours - VRC State Behaviours perform a variety of tasks that can manipulate Animator Controllers/Avatars

Example Logic - Toggles

An example using this diagram to highlight the black lines for a fundamental understanding is as follows:

  1. Expressions Menu Controls - A user in VRChat opens the wheel menu and presses a control for a “Hat Toggle”
  2. Expression Parameters - The “Hat Toggle” control flips an expression parameter bool named “Hat” between true and false
  3. Animator Parameters - VRChat synchronizes all parameters named “Hat” from the Expression Parameters to all Animator Parameters
  4. Animator Layers - The controller switches between two states “Hat On” and “Hat Off” depending if the “Hat” parameter is true or false
  5. Animation Clips - The animation clip inside the “Hat On” or “Hat Off” state then enables/disables the hat

Example Logic - Gestures

An example using this diagram slightly modified to incorporate Built-In Parameters is as follows:

  1. Built-In Parameters - A user in VRChat moves their left fingers to conduct a hand gesture that VRChat recognizes as the parameter “GestureLeft”
  2. Animator Parameters - VRChat synchronizes all parameters named “GestureLeft” from the VRChat client to all Animator Parameters
  3. Animator Layers - The controller switches between eight states depending on the “GestureLeft” parameter
  4. Animation Clips - The animation clip inside that gesture’s state then moves the fingers or changes the facial expression

Last Updated: 31 March 2024 08:54:00